home *** CD-ROM | disk | FTP | other *** search
/ Workbench Design / WB Collection.iso / workbench werkzeuge / memory & system tools / vmm / doc / history < prev    next >
Text File  |  1996-04-07  |  12KB  |  273 lines

  1. $Date: 95/12/16 18:50:23 $
  2.  
  3. V1.0:  This is the first release
  4.  
  5. V1.0b: Bug fix: Unit 0 of the paging device was always used instead of the
  6.                 given unit.
  7.  
  8.        Bug fix: In case of an error "Reboot" didn't work.
  9.  
  10. V1.1:  Now runs on non-A4000 machines. Sets up its own MMU table, 
  11.        if necessary.
  12.  
  13.        Statistics window is font-sensitive now
  14.  
  15.        Dynamic memory allocation policy implemented
  16.  
  17.        Now up to 64 MB of virtual memory possible
  18.  
  19.        Now supports both 4K and 8K pages (two program versions)
  20.  
  21.        Paging to a file implemented
  22.  
  23.        Separate program for printing out statistics is available now
  24.        ("VMM40Stat")
  25.  
  26.        Disk access time reduced.
  27.  
  28. V1.2:  Fixed a bug which caused VMM40 to crash the machine when paging to
  29.        a file with its name longer than 20 characters.
  30.  
  31.        V1.1 tried to improve system consistency by disabling allocation of
  32.        VM inside forbidden/disabled sections. This caused programs which
  33.        do an AvailMem (); AllocMem () inside a Forbid/Permit to fail on
  34.        VM allocations (e.g. ADPro). Removed in V1.2.
  35.  
  36.        A  small  program  "ShowPageSize"  has  been added to determine which
  37.        pagesize is possible on your system.
  38.  
  39.        Maximum VM size has been increased to 128 MB as requested.
  40.  
  41.        A programmer's library has been added for exclusive use of 
  42.        virtual memory.
  43.  
  44. V1.3:  FreeMem now marks the freed pages as empty resulting in less paging
  45.        on freeing memory. Unfortunately this breaks tools such as MungWall
  46.        which writes to memory it hasn't allocated.
  47.  
  48.        Fixed a bug which caused strange behaviour during disk IO using
  49.        multiple units sharing the same device. This was probably responsible
  50.        for some strange misbehaviours when rendering text and icons.
  51.  
  52.        The preferences are now changeable while VMM40 is running. 
  53.        All parameters except the paging device/file and the page-file size
  54.        will be immediately changed by VMM40.
  55.  
  56.        An advanced section for memory allocation has been added to 
  57.        VMM40Prefs. You can now determine the minimum size for VM allocations
  58.        for PUBLIC and non-PUBLIC requests separately.
  59.  
  60.        Reduced VMM's usage of signals on behalf of other tasks. There were
  61.        problems with tasks who had all their signals already allocated.
  62.  
  63.        The Wait function had to be patched in order to avoid problems
  64.        with tasks which have a stack in VM.
  65.  
  66.        You can now exit VMM40 even if there's VM still allocated. In this
  67.        case VMM40 will try to page in all this memory and set up the
  68.        MMU tables accordingly, after which it will quit.
  69.  
  70.        Now writes out modified pages before it needs to resulting
  71.        in better average page-fault service times.
  72.  
  73.        Added a reset handler which inhibits a reset until paging currently
  74.        going on has finished. This prevents the validate procedure after 
  75.        reset if you are paging to a file.
  76.  
  77.        Fixed a bug which caused VMM40 to hang when writing the first page
  78.        to DMA-driven harddisks.
  79.  
  80.        Some minor changes and cleanups.
  81.  
  82. V2.0:  VMM runs on the 68030. Consequently VMM40 has been renamed to VMM.
  83.  
  84.        Implemented so-called pseudo-partitions, which look like a file
  85.        but can be accessed with the speed of a partition.
  86.  
  87.        VMM is a commodity in V2.0 using a hotkey to display its GUI.
  88.        Consequently the setup of V2.0 has changed a bit. VMM40 has 
  89.        been moved to L:VMM-Handler and VMM40Prefs is now simply called 
  90.        VMM. The VMM: assign and the StartVMM program have become obsolete.
  91.  
  92.        Hopefully fixed bugs having to do with paging to DMA devices
  93.        (Patched CachePreDMA and CachePostDMA)
  94.  
  95.        The GUI has changed a bit to make room for some additionally needed
  96.        gadgets.
  97.  
  98.        VMM now patches Workbench's title bar to include the amount of free
  99.        VM. There's a configuration button to enable or disable this feature.
  100.  
  101.        Better exit handling if there's still VM allocated.
  102.  
  103.        Miscellaneous minor changes and bug fixes
  104.  
  105. V2.0a: Fixed a small but nasty bug I introduced shortly before the release
  106.        of V2.0 when converting from GCC 2.5.7 to GCC 2.6.0. This caused
  107.        VMM to crash when paging to a partition was used for the first time.
  108.        Subsequent uses of partition paging worked OK.
  109.        Also corrected a minor mistake that caused the VMM window not to be
  110.        updated after certain menu function were invoked.
  111.  
  112. V2.1:  AvailMem now returns amount of free public memory if task is not
  113.        permitted to use virtual memory.
  114.  
  115.        Fixed a bug in the startup code which caused VMM to crash if the
  116.        preferences file wasn't found. Now a requester is displayed.
  117.  
  118.        Fixed a bug in the Installer script which caused the default 
  119.        configuration file not to be copied.
  120.  
  121.        Implemented a write buffer to write multiple pages to disk.
  122.        Although this involves copying the pages to the buffer it generally
  123.        results in a quite noticeable speed improvement.
  124.  
  125.        Deleted the memory option for paging to the largest available chunk
  126.        since no-one ever seems to use it.
  127.  
  128.        Paging to a file is speeded up significantly by using additional
  129.        buffers for the filesystem. FFS and OFS are very inefficient on
  130.        seeking on long files. VMM installs as many buffers as are needed
  131.        to keep the file list blocks of the paging file in memory.
  132.        Other file systems such as the MSDOS filesystem don't need this.
  133.  
  134.        FreeMem now marks the freed pages as unused instead of invalid.
  135.        Previously subsequent accesses to that range of memory resulted 
  136.        in a page-fault without any disk access but the overhead for 
  137.        page-fault handling.
  138.  
  139.        Corrected font calculation for statistics window.
  140.  
  141.        Improved error handling.
  142.  
  143.        Fixed a hard to find bug which could cause spurious crashes on
  144.        68030 systems with a 68882. I underestimated the amount of
  145.        data which is pushed onto the stack during a context switch if
  146.        the FPU is busy.
  147.  
  148.        Added support for external statistics displays. You can now write
  149.        your own (possibly graphical) statistics output for VMM.
  150.  
  151.        Worked around a DOS bug which caused failure to use pseudo-partitions
  152.        on partitions with the same volume and device name.
  153.  
  154. V3.0:  Implemented code paging, i.e. you can put program code into VM
  155.        and swap it out just as usual memory.
  156.  
  157.        Implemented memory tracking. It is now possible to determine how
  158.        much virtual memory is used by each task.
  159.  
  160.        Implemented another mode for specification of paging memory:
  161.        The 'restricted dynamic mode' works like dynamic mode but you can
  162.        specify lower and upper bounds for paging memory.
  163.  
  164.        I wrote a completely new user interface using MUI. This also
  165.        supports localization.
  166.  
  167.        Hopefully fixed problems with some processor cards (Better handling
  168.        of transparent translation registers).
  169.  
  170.        Additionally implemented a 'custom MMU setup' which should make
  171.        all those nasty boards work which previously had problems with 
  172.        VMM's MMU setup.
  173.        
  174.        VMM can now be controlled using ARexx.
  175.  
  176.        VMM now supports machines equipped with a 68020 + 68851 combination.
  177.  
  178.        Fixed a bug which caused VMM to display a message "Not enough 
  179.        memory" when enabling statistics while VMM was running.
  180.  
  181.        Fixed a race condition which could cause VMM to crash when it
  182.        received a message from an external statistics program during
  183.        program exit time.
  184.  
  185.        The format of the configuration file has changed to a binary description.
  186.        There is a program provided to convert the old style prefs file into
  187.        the new representation.
  188.  
  189. V3.1:  Fixed   a   bug  which  caused  VMM  not  to  work  under  OS2.0.   An
  190.        auto-OpenLibrary  'feature'  of  libnix which was unknown to me caused
  191.        the  startup  code  to open locale.library and refuse to run if it was
  192.        not  there.   This problem has been eliminated by simply disabling the
  193.        auto-OpenLibrary feature.
  194.  
  195.        Added a new keyword 'FORCE' to the VMM tooltypes.  If specified in the
  196.        icon or on the commandline, VMM will not ask you if it may overwrite a
  197.        partition  or  file not previously used by VMM, but will simply do so.
  198.        This  is  very useful for people who use the same paging partition for
  199.        VMM and e.g.  LINUX.
  200.  
  201.        Raised  the  VM  limit  from 128 MB to 512 MB after receiving multiple
  202.        requests  to  do so. Additionally the usage of physical memory for MMU 
  203.        tables has decreased a bit under certain circumstances.
  204.  
  205.        Added  a  FAST  ROM  option  to  VMM. Since on some machines there are 
  206.        problems  with  tools such as CPU which map the ROM to Fast memory and
  207.        it wasn't much work I added this one.
  208.  
  209.        VMM is now able to create a pseudo-partition on a DC-FFS disk.
  210.  
  211.        Added  an  empty-page-collector  which causes unused pages to be freed
  212.        more often. This reduces disk accesses due to pagefaults up to 30%.
  213.  
  214.        Fixed  a  bug in the reset code which caused VMM to generate a GURU on
  215.        some machines when pressing reset.
  216.  
  217.        Fixed  a  minor  bug  which caused VMM to try to free memory again and
  218.        again, although there was no memory to free.  Mostly happened when the
  219.        system  was  short  of  CHIP  memory although VMM did not use any CHIP
  220.        memory.
  221.  
  222.        Changed a bit in the MMU mapping when the VMM_MMU.config file is used.
  223.        Now  memory  for  a  pagetable  is allocated on the first access to an 
  224.        address  mapped  by this table. Previously VMM could not start on some
  225.        machines  because  their  processor boards mapped the whole 4 GB range 
  226.        needing 4 MB just for pagetables.
  227.  
  228.        Modified  the  memory  tracking such that the loadfile is displayed as
  229.        the  owner  of  its  code and not the loading task (most important for
  230.        libraries and devices).
  231.  
  232.        Found  a  bug  which  I  have  long  been searching for which produced
  233.        obscure  irreproducible  crashes.   The  bug is contained in ramlib in
  234.        conjunction with using semaphores. I have developed a patch for ramlib
  235.        (which is not very system-conforming) which fixes this bug.
  236.  
  237.        Fixed  a  minor  bug which caused VMM to incorrectly accept partitions
  238.        with a blocksize other than 512 bytes for pseudo-partitions.
  239.  
  240.        Worked  around a bug in GCC which caused VMM to always use the default
  241.        settings for code paging for the compiler passes of GCC.
  242.  
  243. V3.2:  Fixed  an  Enforcer  hit  which occured when the statistics window was 
  244.        opened as a titlebar upon startup.
  245.  
  246.        Modified  the  resethandler  stuff  to  remove  the  delay  that could 
  247.        sometimes occur upon reset.
  248.  
  249.        Fixed  a  bug  in  ReadMMUConfig. It generated an empty VMM_MMU.config
  250.        file when used in a setup with 8K pages.
  251.  
  252.        Added the possibility to enter directories into the task settings list.
  253.        This way you can group your files into directories with programs using
  254.        VM  and  ones  which  should  not  use VM. Note that only files loaded 
  255.        directly from a given directory are affected, not programs residing in
  256.        a subdirectory of the given one.
  257.  
  258.        VMM now automatically detects swap-partitions also used by LINUX. This
  259.        way  you don't need to give the FORCE option to VMM, reducing the risk
  260.        to accidentally overwrite a normal partition.
  261.  
  262. V3.3:  The output of VMMUsageCLI looks somewhat nicer now (suggested by Steve
  263.        Koren).
  264.  
  265.        Each entry in the task list can now be as long as you like (i.e. about
  266.        10000 characters). Can be used to enter complicated patterns 
  267.        (suggested by Steve Koren).
  268.  
  269.        VMM now works on the 68060.
  270.  
  271.        Fixed  a  bug  which  caused  VMM to crash if FastROM was enabled on a 
  272.        68030.
  273.